//
// Created by iguilty on 2022-01-12.
//

#ifndef DESIGN_PATTERN_CPP_PRODUCT_H
#define DESIGN_PATTERN_CPP_PRODUCT_H

class AbstractProductA{
public:
    virtual ~AbstractProductA();

protected:
    AbstractProductA();

private:
};

class AbstractProductB{
public:
    virtual ~AbstractProductB();

protected:
    AbstractProductB();

private:
};

class ProductA1:public AbstractProductA{
public:
    ProductA1();
    ~ProductA1();
};

class ProductA2:public AbstractProductA{
public:
    ProductA2();
    ~ProductA2();
};

class ProductB1:public AbstractProductB{
public:
    ProductB1();
    ~ProductB1();
};

class ProductB2:public AbstractProductB{
public:
    ProductB2();
    ~ProductB2();
};

#endif //DESIGN_PATTERN_CPP_PRODUCT_H
